技术领域那些唬人の名词 之 大数据
周六聚会里大家在畅谈人工智能之余,随便聊起了大数据。
我不由感慨,这么多年了,大家依然用大数据这个词来唬人。
其实很多技术的基本原理很简单,但是有人就是喜欢用大的词,去描述自己也不懂的东西,从而彰显自己的高深。
大数据原本指数据
其实,大数据就是数据。数据再大也是数据。很多人分不清大数据和数据,把很多原本该用数据的地方,错用了大数据这个词。比如:“大数据表明。。。。” 其实应该写为 “数据表明。。。。”
而我们常说的大数据,其实不是数据,而是一种新的能力,可以处理很比一台计算机可以存储和处理的多得多的数据。这就跟油页岩革命,说到底不是油页岩这种物质的革命,而是把原本不能产油的油页岩变成可以开采的技术革命。
数据大到一定程度需要新的方法处理
小规模的数据,传统的方式就可以处理,比如说一个门店一天的销售数据,拿个Excel,数据就装进去了,做个求和,平均值,画个图什么的,方便得很。
但是,所有门店过去10年的销售数据就大了,,一个网站一天的访问日志更大,一个APP采集的所有数据就更加大,一个电商网站的所有的用户的点击数据大得不得了。Excel肯定是不够了,用传统的编程的方式也搞不定了。
用传统的方式搞不定,所以要用新的方法,这种方法以及相关的行业,就是我们常常用大数据这个词指代的。
Hadoop的诞生
这种技术最早的开源的项目叫做 Hadoop ,Hadoop 之于大数据行业就如同 Apache 服务器之于互联网行业, Elastic Search之于搜索一样。它们的共同点在于,它们的出现催生出一个行业的诞生,虽然它出现之前可以用复杂的方式实现,它之后还有很多不同的版本的软件迭代,但最初把一种思想大众化的,就是那一款开源软件。
那 Hadoop 怎么处理那么大的数据呢?
这让我想起了一个故事,就是我第一次见到我的朋友阳萌的时候,他还在 Google 做实习生,他跟我讲了一个故事,大概的意思就是,他想知道最长的一个中文句子是什么?(具体的问题忘了,大概就是类似这样的一个问题)
这个问题对于小数据(就是一台电脑里面能装得下的数据),相对比较简单,就是这么个代码:
max_len = 0
for sentence in sentences:
sent_len = len(sentence)
if sent_len > max_len:
max_len = len(sentences)
print(max_len)
基本的意思就是,把每个句子都拿出来,看一下长度,如果这个长度比已知的长,就把最长的长度改成这个长度,然后再看下一个句子,直到把所有的句子都看完。
对于几百行,哪怕几百万行,这么做都问题不大。但是,如果要在 Google 能搜索到的所有的句子上都跑一遍,那可是几万亿个句子都不止吧。这怎么搞?怎么存储这些数据?怎么跨计算机的处理这些数据?又怎么最终得到一个长度?
Google 牛的地方,就是有一整套基础架构,可以让哪怕一个实习生,轻松的完成这个任务。他在写程序的时候,代码跟上面差不多,但是在运行的时候,有一套架构把这段代码分布在几万台服务器上,然后日夜不停的跑几天,就可以把所有的数据都遍历一遍,最终找出结果。我当年非常敬仰 Google 这样的可以对其员工赋能的公司。
MapReduce
这种把工作分给几万台服务器的过程叫做 映射(Map),把每个服务器的结果都收集起来得到最终结果的过程叫做 化简(Reduce)。MapReduce 这个神器当年是 Google 独有的,所以才能处理那么大的搜索数据。Google 在 2004 年通过一篇论文把这个过程公开了。
后来,Hadoop 这样的开源工具诞生。它一下子让任何小公司都有了类似 Google 的能力, 而有这个能力就可以做很多以前做不了的事情。它帮助把海量的数据分布放在无数台计算机上,然后对于这些海量的数据用遍历的方法分布的运行类似的简单的操作,并且把结果从无数的电脑上收集回来,形成最终的结果。
可以处理远超过一台电脑存储和处理的数据的能力,叫做大数据能力;做这件事情的行业,叫做大数据行业 。。有了这种处理能力, 我们才能面对着海量的数据,问一些对于小数据很容易回答的问题。
现在这个时代,我们大多数的IT架构都在云上了,所以数据天然就会很大,几乎没有什么只靠一台电脑就可以处理得过来的数据,那么整个 IT 行业就变成是架构在 大数据 之上的行业。
周六我们所提及的所谓四大趋势,是 人工智能,大数据,云计算,和物联网。希望我们大多数的人都能真的哪怕最简单的了解这四样东西到底说的是啥,并且努力在自己真的了解之前不要过度使用这些名字。
注:本周六,继续上海人工智能聚会,这是第四次聚会。本次聚会的主题将会是:硬核的人工智能。
这次希望最主要希望面向技术人员,大家围绕着最近大家使用过的惊为天人的模型进行讨论。比如我会希望分享 Wav2Lip 模型。希望技术的同学带着一些模型过来相互分享。时间是周六5月29日下午2点半到4点半,地点晚些在群里面公布。
延展阅读